package cn.itsource.ymcc.service.impl;

import cn.itsource.ymcc.domain.KillActivity;
import cn.itsource.ymcc.exception.GlobalException;
import cn.itsource.ymcc.mapper.KillActivityMapper;
import cn.itsource.ymcc.service.IKillActivityService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author gwk
 * @since 2023-03-17
 */
@Service
public class KillActivityServiceImpl extends ServiceImpl<KillActivityMapper, KillActivity> implements IKillActivityService {

    @Override
    public boolean insert(KillActivity entity) {
        // 参数校验 jsr303

        // 业务校验： 开始时间晚与当前时间， 结束时间晚于开始时间
        valiTime(entity.getBeginTime(),entity.getEndTime());
        // time_str 字段
        SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd HH:mm");
        String timeStr = dateFormat.format(entity.getBeginTime());
        entity.setTimeStr(timeStr);
        return super.insert(entity);
    }

    //业务校验： 开始时间晚与当前时间， 结束时间晚于开始时间
    public void valiTime (Date beginTime, Date endTime){
        Date now = new Date();

        if(now.getTime() > beginTime.getTime() ){
            throw  new GlobalException("开始时间应该，晚与当前时间");
        }

        if(endTime.getTime() < beginTime.getTime() ){
            throw  new GlobalException("结束时间应该，晚于开始时间");
        }

        if(endTime.getTime() < now.getTime() ){
            throw  new GlobalException("结束时间应该，晚于当前时间");
        }
    }
}
